/* 
 * Autores:
 *      Jonathan Lopez  11106
 *      Jorge Martínez  11237
 * 
 * Ultima revision: $Rev: 19 $
 *      Fecha: $Date: 2011-10-30 01:16:45 +0000 (Sun, 30 Oct 2011) $
 * 
 * Archivo: iServidor.java
 */

package Servicios;

/**
 * Provee de todos los Servicios que posee un usuario en particular. Existe
 * un servidor por cada Categoria.
 * 
 * @author Jorge
 * @author Jonathan
 */
public interface iServidor {
    /**
     * @return Devuelve el nombre del Tipo de Servicio que este iServidor
     * provee.
     */
    String obtenerNombreCategoria();
    
    /**
     * Agrega un nuevo servicio al iServidor, el cual debe de tener un nombre
     * unico.
     * @param nombreServicio Nombre del nuevo servicio.
     * @return True si la operacion fue exitosa, false en caso contrario.
     */
    boolean agregarNuevoServicio( String nombreServicio );
    
    /**
     * @return Devuelve un arreglo con los nombre de todos los Servicios
     * que provee este iServidor. Es decir, todos los Servicios para los cuales
     * el usuario posee datos.
     */
    String[] obtenerServiciosRegistrados();
    
    /**
     * Solicita un iEnlace para modificar los atributos de un Servicio.
     * @param nombreServicio Nombre del Servicio
     * @return Un iEnlace con el cual se puede interactuar con los datos, si
     * el nombre del Servicio no existe u ocurre algun error devuelve null.
     */
    iEnlace obtenerEnlace( String nombreServicio );
}
